// Gweb 是一个简陋的golang web开发框架，它只是简单的封装了下 http 和路由等
// 这是一个新手学习golang 的作品，是一个玩具作品！
package gweb

import (
	"log"
	"os"
)

type Gweb struct {
	s *server
}

//默认的server
var defaultServer = &server{}
//默认的日志处理器
var defaultLoger = log.New(os.Stdout, "gweb", log.Ldate | log.Ltime)

type  MyHandle func(c *Context) error

func (my MyHandle)Hello(c *Context) error {
	return my(c)
}

func New() *Gweb {
	return &Gweb{s:defaultServer}
}

func (g *Gweb)Get(path string, h MyHandle) {
	g.s.addRoute(path, "GET", h)
}

func (g *Gweb)Post(path string, h MyHandle) {
	g.s.addRoute(path, "POST", h)
}

func (g *Gweb)Run() error {
	//设置默认的监听端口信息
	if g.s.c == nil {
		g.s.c = defaultConfig
	}
	//设置日志处理信息
	if g.s.Logger == nil {
		g.s.Logger = defaultLoger
	}
	return g.s.Run()
}

func (g *Gweb)SetCongig(c *Config) {
	g.s.c = c
}

//设置日志处理器
func (g *Gweb)SetLoger(log *log.Logger) {
	g.s.Logger = log
}

